package com.ruoyi.dmp.common.util;

/**
 * Desc: 参数处理的工具类
 * Auth: MquanZeng
 * Date: 2020/7/9
 */
public class DmpParamsUtil {
    private static String splitStr = "\\^"; // 参数分隔符:空格

    public static void main(String[] args) {
        String params = "day=2020-05-09^dim=12,13";
        String key = "dim";
        String value = getValueByKey(params, key);
        System.out.println(value);
    }

    /**
     * 校验参数格式
     * @param params 参数串
     */
    public static void valuate(String params){
        if(params.length()>0){
            String[] paramArray = params.split(splitStr);
            for(String param : paramArray){
                if(!param.contains("=")){
                    throw new RuntimeException("请按 key1=value1"+splitStr+"key2=value2格式封装参数！！");
                }
            }
        }
    }

    /**
     * 从参数串中获取某个key的值
     * @param params  参数串
     * @param key    某个参数
     * @return
     */
    public static String getValueByKey(String params, String key){
        String[] paramArray = params.split(splitStr);
        for(String param : paramArray){
            if(param.length()>0 && param.startsWith(key+"=")){
                return param.replaceFirst(key+"=","");
            }
        }
        return null;
    }

    /**
     *  判断参数串中是否有某个参数
     * @param params 参数串
     * @param key 某个参数
     * @return
     */
    public static Boolean isNullOfKey(String params, String key){
        String result = getValueByKey(params, key);
        if(result == null){
            return true;
        }
        return false;
    }
}
